// 引入express框架
const express = require('express');
const app = express();//调用express框架
const fs = require('fs');
const path = require('path');
const url = require('url');

// 设置监听端口号
app.listen(3000, () => {
    console.log('服务器已开启');
})

// 响应登录
app.get('/login', (req, res) => {
    res.end(fs.readFileSync(path.join(__dirname, 'view/login.html')))
})


// 响应注册
app.get('/register', (req, res) => {
    res.end(fs.readFileSync(path.join(__dirname, 'view/register.html')))
})

// 获取提交的数据,注册
app.get('/doregister', (req, res) => {

    // 获取用户提交的数据
    let userData = url.parse(req.url, true).query;
    console.log(userData);

    // 读取json文件
    let js = path.join(__dirname, 'view/persons.json')
    let data = fs.readFileSync(js, 'utf-8');
    let obj = JSON.parse(data);
    console.log(obj);

    // 遍历obj内数据，如果用户输入的数据没有注册，就追加，有就提示用户已经存在
    let s = obj.find(item => item.username == userData.username);
    if (s) {
        res.send('用户已存在');
    } else {
        //如果不存在就将用户输入的账户密码提交到json数据内
        obj.push(userData);
        // 将用户数据写入json文件内
        fs.writeFileSync(js, JSON.stringify(obj));
        //并且给出响应
        res.send('注册账户成功')
    }
})

// 登录
app.get('/dologin', (req, res) => {

    // 获取用户提交的数据
    let userData = url.parse(req.url, true).query;
    console.log(userData);

    // 读取json文件
    let js = path.join(__dirname, 'view/persons.json')
    let data = fs.readFileSync(js, 'utf-8');
    let obj = JSON.parse(data);
    console.log(obj);

    // 遍历obj内数据，如果用户输入的数据没有注册，就追加，有就提示用户已经存在
    let s = obj.find(item => item.username == userData.username && item.password == userData.password);
    if (s) {
        res.send('登录成功');
    } else {
        res.send('没有用户名密码错误')
    }
})